﻿// #include <benchmark/benchmark.h>

// #include <learn/alg/alg_interpolator.h>
// #include <third/spline.h>

// using namespace xi;
// using namespace xi::alg;

// namespace
// {

// void bench_Alg_CubicSplineInterpolator(benchmark::State &state)
// {
//     int n = 10000;
//     std::vector<double> X;
//     std::vector<double> Y;
//     for (int i = 0; i < n; ++i)
//     {
//         X.push_back(i);
//         Y.push_back(i * i);
//     }

//     for (auto _ : state)
//     {
//         Alg_CubicSpline_Interpolator<double> interpolator(X, Y);
//         auto result = interpolator.interpolate(interpolator.Natural, interpolator.Natural, 0, 0);
//         for (int i = 0; i < n; ++i)
//            BENCHMARK_DONT_OPTIMIZE(result.value(i + 0.5));
//     }
// }
// BENCHMARK(bench_Alg_CubicSplineInterpolator);

// void bench_tk_spline(benchmark::State &state)
// {
//     int n = 10000;
//     std::vector<double> X;
//     std::vector<double> Y;
//     for (int i = 0; i < n; ++i)
//     {
//         X.push_back(i);
//         Y.push_back(i * i);
//     }

//     for (auto _ : state)
//     {
//         tk::spline s(X, Y);
//         for (int i = 0; i < n; ++i)
//             BENCHMARK_DONT_OPTIMIZE(s(i + 0.5));
//     }
// }
// BENCHMARK(bench_tk_spline);

// } // namespace
